 /* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

云物理服务器
云物理服务器相关接口

OpenAPI spec version: v1
Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/


#import <Foundation/Foundation.h>
#import <JDCloudOCSDKCps/CpsExecutor.h>

@implementation CpsClient

@synthesize userAgent = _userAgent;
@synthesize serviceName = _serviceName;
@synthesize version = _version;

-(void) addCustomerHeaderWithKey:(NSString*) key
                           value:(NSString*) value{
    if(![self customHeader])
    {
        self.customHeader = [[NSMutableDictionary alloc] init];
    }
    if(key && value)
    {
        [[self customHeader] setValue:value forKey:key];
    }
   
}

-(id)initWithGlobalConfig{
    if(![GlobalConfig credential])
    {
        NSException *e = [SDKArgumentNullException exceptionWithName:@"ArgumentNullException" reason:@"GlobalConfig credential not config" userInfo:nil];
        @throw e;
    }
    self.credential = [GlobalConfig credential];
    if(![GlobalConfig sdkEnvironment])
    {
        self.sdkEnvironment = [[SDKEnvironment alloc] initWithEndPoint:@"cps.jdcloud-api.com"];
    }else
    {
        self.sdkEnvironment = [GlobalConfig sdkEnvironment];
    }
    self.httpRequestProtocol = @"https";
    _userAgent = @"JdCloudOCSdk 0.0.1 cps  v1";
    _serviceName = @"cps";
    _version = @"v1";
    self.contentType = @"application/json";
    return self;
}

-(id)initWithCredential:(Credential*)credential
         sdkEnvironment:(SDKEnvironment*)sdkEnvironment
{
    if(!credential)
    {
        NSException *e = [SDKArgumentNullException exceptionWithName:@"ArgumentNullException" reason:@" credential can not null" userInfo:nil];
        @throw e;
    }else{
        self.credential = credential;
    }
    
    if(!sdkEnvironment)
    {
        NSException *e = [SDKArgumentNullException exceptionWithName:@"ArgumentNullException" reason:@" sdkEnvironment can not null" userInfo:nil];
        @throw e;
    }else{
        self.sdkEnvironment = sdkEnvironment;
    }
    self.httpRequestProtocol = @"https";
    _userAgent = @"JdCloudOCSdk 0.0.1 cps  v1";
    _serviceName = @"cps";
    _version = @"v1";
    self.contentType = @"application/json";
    return self;
}

-(id)initWithCredential:(Credential*)credential
{
    if(!credential)
    {
        NSException *e = [SDKArgumentNullException exceptionWithName:@"ArgumentNullException" reason:@" credential can not null" userInfo:nil];
        @throw e;
    }else{
        self.credential = credential;
    }
    if(![GlobalConfig sdkEnvironment])
    {
        self.sdkEnvironment = [[SDKEnvironment alloc] initWithEndPoint:@"cps.jdcloud-api.com"];
    }else
    {
        self.sdkEnvironment = [GlobalConfig sdkEnvironment];
    }
    self.httpRequestProtocol = @"https";
    _userAgent = @"JdCloudOCSdk 0.0.1 cps  v1";
    _serviceName = @"cps";
    _version = @"v1";
    self.contentType = @"application/json";
    return self;
}

-(id)init{
    self.httpRequestProtocol = @"https";
    _userAgent = @"JdCloudOCSdk 0.0.1 cps  v1";
    _serviceName = @"cps";
    _version = @"v1";
    self.contentType = @"application/json";
    return self;
}


/**
describeSubnet sync request
@param describeSubnetRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeSubnetResponse` the request response data model
*/
-(NSDictionary*) describeSubnetSyncWithRequest:(CpsDescribeSubnetRequest*) describeSubnetRequest
{
CpsDescribeSubnetExecutor* excutor = [[CpsDescribeSubnetExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeSubnetRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeSubnetResponse* response = [[CpsDescribeSubnetResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeSubnetResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeSubnetAsyncWithRequest:(CpsDescribeSubnetRequest*) describeSubnetRequest
                       completionHandler:(void(^)(int statusCode,CpsDescribeSubnetResponse* _Nullable describeSubnetResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsDescribeSubnetExecutor* excutor = [[CpsDescribeSubnetExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeSubnetRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeSubnetResponse* response = [[CpsDescribeSubnetResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
modifyListener sync request
@param modifyListenerRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyListenerResponse` the request response data model
*/
-(NSDictionary*) modifyListenerSyncWithRequest:(CpsModifyListenerRequest*) modifyListenerRequest
{
CpsModifyListenerExecutor* excutor = [[CpsModifyListenerExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:modifyListenerRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsModifyListenerResponse* response = [[CpsModifyListenerResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"modifyListenerResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)modifyListenerAsyncWithRequest:(CpsModifyListenerRequest*) modifyListenerRequest
                       completionHandler:(void(^)(int statusCode,CpsModifyListenerResponse* _Nullable modifyListenerResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsModifyListenerExecutor* excutor = [[CpsModifyListenerExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:modifyListenerRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsModifyListenerResponse* response = [[CpsModifyListenerResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
associateElasticIpLB sync request
@param associateElasticIpLBRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `associateElasticIpLBResponse` the request response data model
*/
-(NSDictionary*) associateElasticIpLBSyncWithRequest:(CpsAssociateElasticIpLBRequest*) associateElasticIpLBRequest
{
CpsAssociateElasticIpLBExecutor* excutor = [[CpsAssociateElasticIpLBExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:associateElasticIpLBRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsAssociateElasticIpLBResponse* response = [[CpsAssociateElasticIpLBResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"associateElasticIpLBResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)associateElasticIpLBAsyncWithRequest:(CpsAssociateElasticIpLBRequest*) associateElasticIpLBRequest
                       completionHandler:(void(^)(int statusCode,CpsAssociateElasticIpLBResponse* _Nullable associateElasticIpLBResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsAssociateElasticIpLBExecutor* excutor = [[CpsAssociateElasticIpLBExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:associateElasticIpLBRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsAssociateElasticIpLBResponse* response = [[CpsAssociateElasticIpLBResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
queryListener sync request
@param queryListenerRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryListenerResponse` the request response data model
*/
-(NSDictionary*) queryListenerSyncWithRequest:(CpsQueryListenerRequest*) queryListenerRequest
{
CpsQueryListenerExecutor* excutor = [[CpsQueryListenerExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:queryListenerRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsQueryListenerResponse* response = [[CpsQueryListenerResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"queryListenerResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)queryListenerAsyncWithRequest:(CpsQueryListenerRequest*) queryListenerRequest
                       completionHandler:(void(^)(int statusCode,CpsQueryListenerResponse* _Nullable queryListenerResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsQueryListenerExecutor* excutor = [[CpsQueryListenerExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:queryListenerRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsQueryListenerResponse* response = [[CpsQueryListenerResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
deleteVpc sync request
@param deleteVpcRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteVpcResponse` the request response data model
*/
-(NSDictionary*) deleteVpcSyncWithRequest:(CpsDeleteVpcRequest*) deleteVpcRequest
{
CpsDeleteVpcExecutor* excutor = [[CpsDeleteVpcExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:deleteVpcRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDeleteVpcResponse* response = [[CpsDeleteVpcResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"deleteVpcResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)deleteVpcAsyncWithRequest:(CpsDeleteVpcRequest*) deleteVpcRequest
                       completionHandler:(void(^)(int statusCode,CpsDeleteVpcResponse* _Nullable deleteVpcResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsDeleteVpcExecutor* excutor = [[CpsDeleteVpcExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:deleteVpcRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDeleteVpcResponse* response = [[CpsDeleteVpcResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeInstanceStatus sync request
@param describeInstanceStatusRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeInstanceStatusResponse` the request response data model
*/
-(NSDictionary*) describeInstanceStatusSyncWithRequest:(CpsDescribeInstanceStatusRequest*) describeInstanceStatusRequest
{
CpsDescribeInstanceStatusExecutor* excutor = [[CpsDescribeInstanceStatusExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeInstanceStatusRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeInstanceStatusResponse* response = [[CpsDescribeInstanceStatusResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeInstanceStatusResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeInstanceStatusAsyncWithRequest:(CpsDescribeInstanceStatusRequest*) describeInstanceStatusRequest
                       completionHandler:(void(^)(int statusCode,CpsDescribeInstanceStatusResponse* _Nullable describeInstanceStatusResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsDescribeInstanceStatusExecutor* excutor = [[CpsDescribeInstanceStatusExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeInstanceStatusRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeInstanceStatusResponse* response = [[CpsDescribeInstanceStatusResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
addServers sync request
@param addServersRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `addServersResponse` the request response data model
*/
-(NSDictionary*) addServersSyncWithRequest:(CpsAddServersRequest*) addServersRequest
{
CpsAddServersExecutor* excutor = [[CpsAddServersExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:addServersRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsAddServersResponse* response = [[CpsAddServersResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"addServersResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)addServersAsyncWithRequest:(CpsAddServersRequest*) addServersRequest
                       completionHandler:(void(^)(int statusCode,CpsAddServersResponse* _Nullable addServersResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsAddServersExecutor* excutor = [[CpsAddServersExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:addServersRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsAddServersResponse* response = [[CpsAddServersResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
reinstallInstance sync request
@param reinstallInstanceRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `reinstallInstanceResponse` the request response data model
*/
-(NSDictionary*) reinstallInstanceSyncWithRequest:(CpsReinstallInstanceRequest*) reinstallInstanceRequest
{
CpsReinstallInstanceExecutor* excutor = [[CpsReinstallInstanceExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:reinstallInstanceRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsReinstallInstanceResponse* response = [[CpsReinstallInstanceResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"reinstallInstanceResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)reinstallInstanceAsyncWithRequest:(CpsReinstallInstanceRequest*) reinstallInstanceRequest
                       completionHandler:(void(^)(int statusCode,CpsReinstallInstanceResponse* _Nullable reinstallInstanceResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsReinstallInstanceExecutor* excutor = [[CpsReinstallInstanceExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:reinstallInstanceRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsReinstallInstanceResponse* response = [[CpsReinstallInstanceResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
deleteServerGroup sync request
@param deleteServerGroupRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteServerGroupResponse` the request response data model
*/
-(NSDictionary*) deleteServerGroupSyncWithRequest:(CpsDeleteServerGroupRequest*) deleteServerGroupRequest
{
CpsDeleteServerGroupExecutor* excutor = [[CpsDeleteServerGroupExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:deleteServerGroupRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDeleteServerGroupResponse* response = [[CpsDeleteServerGroupResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"deleteServerGroupResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)deleteServerGroupAsyncWithRequest:(CpsDeleteServerGroupRequest*) deleteServerGroupRequest
                       completionHandler:(void(^)(int statusCode,CpsDeleteServerGroupResponse* _Nullable deleteServerGroupResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsDeleteServerGroupExecutor* excutor = [[CpsDeleteServerGroupExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:deleteServerGroupRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDeleteServerGroupResponse* response = [[CpsDeleteServerGroupResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeDeviceRaids sync request
@param describeDeviceRaidsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeDeviceRaidsResponse` the request response data model
*/
-(NSDictionary*) describeDeviceRaidsSyncWithRequest:(CpsDescribeDeviceRaidsRequest*) describeDeviceRaidsRequest
{
CpsDescribeDeviceRaidsExecutor* excutor = [[CpsDescribeDeviceRaidsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeDeviceRaidsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeDeviceRaidsResponse* response = [[CpsDescribeDeviceRaidsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeDeviceRaidsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeDeviceRaidsAsyncWithRequest:(CpsDescribeDeviceRaidsRequest*) describeDeviceRaidsRequest
                       completionHandler:(void(^)(int statusCode,CpsDescribeDeviceRaidsResponse* _Nullable describeDeviceRaidsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsDescribeDeviceRaidsExecutor* excutor = [[CpsDescribeDeviceRaidsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeDeviceRaidsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeDeviceRaidsResponse* response = [[CpsDescribeDeviceRaidsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
disassociateElasticIpLB sync request
@param disassociateElasticIpLBRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `disassociateElasticIpLBResponse` the request response data model
*/
-(NSDictionary*) disassociateElasticIpLBSyncWithRequest:(CpsDisassociateElasticIpLBRequest*) disassociateElasticIpLBRequest
{
CpsDisassociateElasticIpLBExecutor* excutor = [[CpsDisassociateElasticIpLBExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:disassociateElasticIpLBRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDisassociateElasticIpLBResponse* response = [[CpsDisassociateElasticIpLBResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"disassociateElasticIpLBResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)disassociateElasticIpLBAsyncWithRequest:(CpsDisassociateElasticIpLBRequest*) disassociateElasticIpLBRequest
                       completionHandler:(void(^)(int statusCode,CpsDisassociateElasticIpLBResponse* _Nullable disassociateElasticIpLBResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsDisassociateElasticIpLBExecutor* excutor = [[CpsDisassociateElasticIpLBExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:disassociateElasticIpLBRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDisassociateElasticIpLBResponse* response = [[CpsDisassociateElasticIpLBResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
modifyVpc sync request
@param modifyVpcRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyVpcResponse` the request response data model
*/
-(NSDictionary*) modifyVpcSyncWithRequest:(CpsModifyVpcRequest*) modifyVpcRequest
{
CpsModifyVpcExecutor* excutor = [[CpsModifyVpcExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:modifyVpcRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsModifyVpcResponse* response = [[CpsModifyVpcResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"modifyVpcResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)modifyVpcAsyncWithRequest:(CpsModifyVpcRequest*) modifyVpcRequest
                       completionHandler:(void(^)(int statusCode,CpsModifyVpcResponse* _Nullable modifyVpcResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsModifyVpcExecutor* excutor = [[CpsModifyVpcExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:modifyVpcRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsModifyVpcResponse* response = [[CpsModifyVpcResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
queryLoadBalancer sync request
@param queryLoadBalancerRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryLoadBalancerResponse` the request response data model
*/
-(NSDictionary*) queryLoadBalancerSyncWithRequest:(CpsQueryLoadBalancerRequest*) queryLoadBalancerRequest
{
CpsQueryLoadBalancerExecutor* excutor = [[CpsQueryLoadBalancerExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:queryLoadBalancerRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsQueryLoadBalancerResponse* response = [[CpsQueryLoadBalancerResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"queryLoadBalancerResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)queryLoadBalancerAsyncWithRequest:(CpsQueryLoadBalancerRequest*) queryLoadBalancerRequest
                       completionHandler:(void(^)(int statusCode,CpsQueryLoadBalancerResponse* _Nullable queryLoadBalancerResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsQueryLoadBalancerExecutor* excutor = [[CpsQueryLoadBalancerExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:queryLoadBalancerRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsQueryLoadBalancerResponse* response = [[CpsQueryLoadBalancerResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
queryServers sync request
@param queryServersRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryServersResponse` the request response data model
*/
-(NSDictionary*) queryServersSyncWithRequest:(CpsQueryServersRequest*) queryServersRequest
{
CpsQueryServersExecutor* excutor = [[CpsQueryServersExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:queryServersRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsQueryServersResponse* response = [[CpsQueryServersResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"queryServersResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)queryServersAsyncWithRequest:(CpsQueryServersRequest*) queryServersRequest
                       completionHandler:(void(^)(int statusCode,CpsQueryServersResponse* _Nullable queryServersResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsQueryServersExecutor* excutor = [[CpsQueryServersExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:queryServersRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsQueryServersResponse* response = [[CpsQueryServersResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeInstanceName sync request
@param describeInstanceNameRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeInstanceNameResponse` the request response data model
*/
-(NSDictionary*) describeInstanceNameSyncWithRequest:(CpsDescribeInstanceNameRequest*) describeInstanceNameRequest
{
CpsDescribeInstanceNameExecutor* excutor = [[CpsDescribeInstanceNameExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeInstanceNameRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeInstanceNameResponse* response = [[CpsDescribeInstanceNameResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeInstanceNameResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeInstanceNameAsyncWithRequest:(CpsDescribeInstanceNameRequest*) describeInstanceNameRequest
                       completionHandler:(void(^)(int statusCode,CpsDescribeInstanceNameResponse* _Nullable describeInstanceNameResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsDescribeInstanceNameExecutor* excutor = [[CpsDescribeInstanceNameExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeInstanceNameRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeInstanceNameResponse* response = [[CpsDescribeInstanceNameResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
modifySubnet sync request
@param modifySubnetRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifySubnetResponse` the request response data model
*/
-(NSDictionary*) modifySubnetSyncWithRequest:(CpsModifySubnetRequest*) modifySubnetRequest
{
CpsModifySubnetExecutor* excutor = [[CpsModifySubnetExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:modifySubnetRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsModifySubnetResponse* response = [[CpsModifySubnetResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"modifySubnetResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)modifySubnetAsyncWithRequest:(CpsModifySubnetRequest*) modifySubnetRequest
                       completionHandler:(void(^)(int statusCode,CpsModifySubnetResponse* _Nullable modifySubnetResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsModifySubnetExecutor* excutor = [[CpsModifySubnetExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:modifySubnetRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsModifySubnetResponse* response = [[CpsModifySubnetResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeVpcs sync request
@param describeVpcsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeVpcsResponse` the request response data model
*/
-(NSDictionary*) describeVpcsSyncWithRequest:(CpsDescribeVpcsRequest*) describeVpcsRequest
{
CpsDescribeVpcsExecutor* excutor = [[CpsDescribeVpcsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeVpcsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeVpcsResponse* response = [[CpsDescribeVpcsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeVpcsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeVpcsAsyncWithRequest:(CpsDescribeVpcsRequest*) describeVpcsRequest
                       completionHandler:(void(^)(int statusCode,CpsDescribeVpcsResponse* _Nullable describeVpcsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsDescribeVpcsExecutor* excutor = [[CpsDescribeVpcsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeVpcsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeVpcsResponse* response = [[CpsDescribeVpcsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
queryKeypair sync request
@param queryKeypairRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryKeypairResponse` the request response data model
*/
-(NSDictionary*) queryKeypairSyncWithRequest:(CpsQueryKeypairRequest*) queryKeypairRequest
{
CpsQueryKeypairExecutor* excutor = [[CpsQueryKeypairExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:queryKeypairRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsQueryKeypairResponse* response = [[CpsQueryKeypairResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"queryKeypairResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)queryKeypairAsyncWithRequest:(CpsQueryKeypairRequest*) queryKeypairRequest
                       completionHandler:(void(^)(int statusCode,CpsQueryKeypairResponse* _Nullable queryKeypairResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsQueryKeypairExecutor* excutor = [[CpsQueryKeypairExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:queryKeypairRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsQueryKeypairResponse* response = [[CpsQueryKeypairResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeInstanceRaid sync request
@param describeInstanceRaidRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeInstanceRaidResponse` the request response data model
*/
-(NSDictionary*) describeInstanceRaidSyncWithRequest:(CpsDescribeInstanceRaidRequest*) describeInstanceRaidRequest
{
CpsDescribeInstanceRaidExecutor* excutor = [[CpsDescribeInstanceRaidExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeInstanceRaidRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeInstanceRaidResponse* response = [[CpsDescribeInstanceRaidResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeInstanceRaidResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeInstanceRaidAsyncWithRequest:(CpsDescribeInstanceRaidRequest*) describeInstanceRaidRequest
                       completionHandler:(void(^)(int statusCode,CpsDescribeInstanceRaidResponse* _Nullable describeInstanceRaidResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsDescribeInstanceRaidExecutor* excutor = [[CpsDescribeInstanceRaidExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeInstanceRaidRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeInstanceRaidResponse* response = [[CpsDescribeInstanceRaidResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeRegiones sync request
@param describeRegionesRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeRegionesResponse` the request response data model
*/
-(NSDictionary*) describeRegionesSyncWithRequest:(CpsDescribeRegionesRequest*) describeRegionesRequest
{
CpsDescribeRegionesExecutor* excutor = [[CpsDescribeRegionesExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeRegionesRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeRegionesResponse* response = [[CpsDescribeRegionesResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeRegionesResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeRegionesAsyncWithRequest:(CpsDescribeRegionesRequest*) describeRegionesRequest
                       completionHandler:(void(^)(int statusCode,CpsDescribeRegionesResponse* _Nullable describeRegionesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsDescribeRegionesExecutor* excutor = [[CpsDescribeRegionesExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeRegionesRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeRegionesResponse* response = [[CpsDescribeRegionesResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
queryLoadBalancers sync request
@param queryLoadBalancersRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryLoadBalancersResponse` the request response data model
*/
-(NSDictionary*) queryLoadBalancersSyncWithRequest:(CpsQueryLoadBalancersRequest*) queryLoadBalancersRequest
{
CpsQueryLoadBalancersExecutor* excutor = [[CpsQueryLoadBalancersExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:queryLoadBalancersRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsQueryLoadBalancersResponse* response = [[CpsQueryLoadBalancersResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"queryLoadBalancersResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)queryLoadBalancersAsyncWithRequest:(CpsQueryLoadBalancersRequest*) queryLoadBalancersRequest
                       completionHandler:(void(^)(int statusCode,CpsQueryLoadBalancersResponse* _Nullable queryLoadBalancersResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsQueryLoadBalancersExecutor* excutor = [[CpsQueryLoadBalancersExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:queryLoadBalancersRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsQueryLoadBalancersResponse* response = [[CpsQueryLoadBalancersResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
modifyServerGroup sync request
@param modifyServerGroupRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyServerGroupResponse` the request response data model
*/
-(NSDictionary*) modifyServerGroupSyncWithRequest:(CpsModifyServerGroupRequest*) modifyServerGroupRequest
{
CpsModifyServerGroupExecutor* excutor = [[CpsModifyServerGroupExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:modifyServerGroupRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsModifyServerGroupResponse* response = [[CpsModifyServerGroupResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"modifyServerGroupResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)modifyServerGroupAsyncWithRequest:(CpsModifyServerGroupRequest*) modifyServerGroupRequest
                       completionHandler:(void(^)(int statusCode,CpsModifyServerGroupResponse* _Nullable modifyServerGroupResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsModifyServerGroupExecutor* excutor = [[CpsModifyServerGroupExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:modifyServerGroupRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsModifyServerGroupResponse* response = [[CpsModifyServerGroupResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
modifyInstance sync request
@param modifyInstanceRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyInstanceResponse` the request response data model
*/
-(NSDictionary*) modifyInstanceSyncWithRequest:(CpsModifyInstanceRequest*) modifyInstanceRequest
{
CpsModifyInstanceExecutor* excutor = [[CpsModifyInstanceExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:modifyInstanceRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsModifyInstanceResponse* response = [[CpsModifyInstanceResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"modifyInstanceResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)modifyInstanceAsyncWithRequest:(CpsModifyInstanceRequest*) modifyInstanceRequest
                       completionHandler:(void(^)(int statusCode,CpsModifyInstanceResponse* _Nullable modifyInstanceResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsModifyInstanceExecutor* excutor = [[CpsModifyInstanceExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:modifyInstanceRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsModifyInstanceResponse* response = [[CpsModifyInstanceResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
queryKeypairs sync request
@param queryKeypairsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryKeypairsResponse` the request response data model
*/
-(NSDictionary*) queryKeypairsSyncWithRequest:(CpsQueryKeypairsRequest*) queryKeypairsRequest
{
CpsQueryKeypairsExecutor* excutor = [[CpsQueryKeypairsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:queryKeypairsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsQueryKeypairsResponse* response = [[CpsQueryKeypairsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"queryKeypairsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)queryKeypairsAsyncWithRequest:(CpsQueryKeypairsRequest*) queryKeypairsRequest
                       completionHandler:(void(^)(int statusCode,CpsQueryKeypairsResponse* _Nullable queryKeypairsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsQueryKeypairsExecutor* excutor = [[CpsQueryKeypairsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:queryKeypairsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsQueryKeypairsResponse* response = [[CpsQueryKeypairsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeDeviceTypes sync request
@param describeDeviceTypesRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeDeviceTypesResponse` the request response data model
*/
-(NSDictionary*) describeDeviceTypesSyncWithRequest:(CpsDescribeDeviceTypesRequest*) describeDeviceTypesRequest
{
CpsDescribeDeviceTypesExecutor* excutor = [[CpsDescribeDeviceTypesExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeDeviceTypesRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeDeviceTypesResponse* response = [[CpsDescribeDeviceTypesResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeDeviceTypesResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeDeviceTypesAsyncWithRequest:(CpsDescribeDeviceTypesRequest*) describeDeviceTypesRequest
                       completionHandler:(void(^)(int statusCode,CpsDescribeDeviceTypesResponse* _Nullable describeDeviceTypesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsDescribeDeviceTypesExecutor* excutor = [[CpsDescribeDeviceTypesExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeDeviceTypesRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeDeviceTypesResponse* response = [[CpsDescribeDeviceTypesResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
disassociateElasticIp sync request
@param disassociateElasticIpRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `disassociateElasticIpResponse` the request response data model
*/
-(NSDictionary*) disassociateElasticIpSyncWithRequest:(CpsDisassociateElasticIpRequest*) disassociateElasticIpRequest
{
CpsDisassociateElasticIpExecutor* excutor = [[CpsDisassociateElasticIpExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:disassociateElasticIpRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDisassociateElasticIpResponse* response = [[CpsDisassociateElasticIpResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"disassociateElasticIpResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)disassociateElasticIpAsyncWithRequest:(CpsDisassociateElasticIpRequest*) disassociateElasticIpRequest
                       completionHandler:(void(^)(int statusCode,CpsDisassociateElasticIpResponse* _Nullable disassociateElasticIpResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsDisassociateElasticIpExecutor* excutor = [[CpsDisassociateElasticIpExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:disassociateElasticIpRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDisassociateElasticIpResponse* response = [[CpsDisassociateElasticIpResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeElasticIp sync request
@param describeElasticIpRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeElasticIpResponse` the request response data model
*/
-(NSDictionary*) describeElasticIpSyncWithRequest:(CpsDescribeElasticIpRequest*) describeElasticIpRequest
{
CpsDescribeElasticIpExecutor* excutor = [[CpsDescribeElasticIpExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeElasticIpRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeElasticIpResponse* response = [[CpsDescribeElasticIpResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeElasticIpResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeElasticIpAsyncWithRequest:(CpsDescribeElasticIpRequest*) describeElasticIpRequest
                       completionHandler:(void(^)(int statusCode,CpsDescribeElasticIpResponse* _Nullable describeElasticIpResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsDescribeElasticIpExecutor* excutor = [[CpsDescribeElasticIpExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeElasticIpRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeElasticIpResponse* response = [[CpsDescribeElasticIpResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
queryRouteTables sync request
@param queryRouteTablesRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryRouteTablesResponse` the request response data model
*/
-(NSDictionary*) queryRouteTablesSyncWithRequest:(CpsQueryRouteTablesRequest*) queryRouteTablesRequest
{
CpsQueryRouteTablesExecutor* excutor = [[CpsQueryRouteTablesExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:queryRouteTablesRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsQueryRouteTablesResponse* response = [[CpsQueryRouteTablesResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"queryRouteTablesResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)queryRouteTablesAsyncWithRequest:(CpsQueryRouteTablesRequest*) queryRouteTablesRequest
                       completionHandler:(void(^)(int statusCode,CpsQueryRouteTablesResponse* _Nullable queryRouteTablesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsQueryRouteTablesExecutor* excutor = [[CpsQueryRouteTablesExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:queryRouteTablesRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsQueryRouteTablesResponse* response = [[CpsQueryRouteTablesResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
modifyLoadBalancer sync request
@param modifyLoadBalancerRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyLoadBalancerResponse` the request response data model
*/
-(NSDictionary*) modifyLoadBalancerSyncWithRequest:(CpsModifyLoadBalancerRequest*) modifyLoadBalancerRequest
{
CpsModifyLoadBalancerExecutor* excutor = [[CpsModifyLoadBalancerExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:modifyLoadBalancerRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsModifyLoadBalancerResponse* response = [[CpsModifyLoadBalancerResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"modifyLoadBalancerResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)modifyLoadBalancerAsyncWithRequest:(CpsModifyLoadBalancerRequest*) modifyLoadBalancerRequest
                       completionHandler:(void(^)(int statusCode,CpsModifyLoadBalancerResponse* _Nullable modifyLoadBalancerResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsModifyLoadBalancerExecutor* excutor = [[CpsModifyLoadBalancerExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:modifyLoadBalancerRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsModifyLoadBalancerResponse* response = [[CpsModifyLoadBalancerResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
startLoadBalancer sync request
@param startLoadBalancerRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `startLoadBalancerResponse` the request response data model
*/
-(NSDictionary*) startLoadBalancerSyncWithRequest:(CpsStartLoadBalancerRequest*) startLoadBalancerRequest
{
CpsStartLoadBalancerExecutor* excutor = [[CpsStartLoadBalancerExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:startLoadBalancerRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsStartLoadBalancerResponse* response = [[CpsStartLoadBalancerResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"startLoadBalancerResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)startLoadBalancerAsyncWithRequest:(CpsStartLoadBalancerRequest*) startLoadBalancerRequest
                       completionHandler:(void(^)(int statusCode,CpsStartLoadBalancerResponse* _Nullable startLoadBalancerResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsStartLoadBalancerExecutor* excutor = [[CpsStartLoadBalancerExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:startLoadBalancerRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsStartLoadBalancerResponse* response = [[CpsStartLoadBalancerResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
stopLoadBalancer sync request
@param stopLoadBalancerRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `stopLoadBalancerResponse` the request response data model
*/
-(NSDictionary*) stopLoadBalancerSyncWithRequest:(CpsStopLoadBalancerRequest*) stopLoadBalancerRequest
{
CpsStopLoadBalancerExecutor* excutor = [[CpsStopLoadBalancerExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:stopLoadBalancerRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsStopLoadBalancerResponse* response = [[CpsStopLoadBalancerResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"stopLoadBalancerResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)stopLoadBalancerAsyncWithRequest:(CpsStopLoadBalancerRequest*) stopLoadBalancerRequest
                       completionHandler:(void(^)(int statusCode,CpsStopLoadBalancerResponse* _Nullable stopLoadBalancerResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsStopLoadBalancerExecutor* excutor = [[CpsStopLoadBalancerExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:stopLoadBalancerRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsStopLoadBalancerResponse* response = [[CpsStopLoadBalancerResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeInstance sync request
@param describeInstanceRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeInstanceResponse` the request response data model
*/
-(NSDictionary*) describeInstanceSyncWithRequest:(CpsDescribeInstanceRequest*) describeInstanceRequest
{
CpsDescribeInstanceExecutor* excutor = [[CpsDescribeInstanceExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeInstanceRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeInstanceResponse* response = [[CpsDescribeInstanceResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeInstanceResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeInstanceAsyncWithRequest:(CpsDescribeInstanceRequest*) describeInstanceRequest
                       completionHandler:(void(^)(int statusCode,CpsDescribeInstanceResponse* _Nullable describeInstanceResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsDescribeInstanceExecutor* excutor = [[CpsDescribeInstanceExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeInstanceRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeInstanceResponse* response = [[CpsDescribeInstanceResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
modifyBandwidth sync request
@param modifyBandwidthRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyBandwidthResponse` the request response data model
*/
-(NSDictionary*) modifyBandwidthSyncWithRequest:(CpsModifyBandwidthRequest*) modifyBandwidthRequest
{
CpsModifyBandwidthExecutor* excutor = [[CpsModifyBandwidthExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:modifyBandwidthRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsModifyBandwidthResponse* response = [[CpsModifyBandwidthResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"modifyBandwidthResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)modifyBandwidthAsyncWithRequest:(CpsModifyBandwidthRequest*) modifyBandwidthRequest
                       completionHandler:(void(^)(int statusCode,CpsModifyBandwidthResponse* _Nullable modifyBandwidthResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsModifyBandwidthExecutor* excutor = [[CpsModifyBandwidthExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:modifyBandwidthRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsModifyBandwidthResponse* response = [[CpsModifyBandwidthResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
queryServerGroups sync request
@param queryServerGroupsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryServerGroupsResponse` the request response data model
*/
-(NSDictionary*) queryServerGroupsSyncWithRequest:(CpsQueryServerGroupsRequest*) queryServerGroupsRequest
{
CpsQueryServerGroupsExecutor* excutor = [[CpsQueryServerGroupsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:queryServerGroupsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsQueryServerGroupsResponse* response = [[CpsQueryServerGroupsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"queryServerGroupsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)queryServerGroupsAsyncWithRequest:(CpsQueryServerGroupsRequest*) queryServerGroupsRequest
                       completionHandler:(void(^)(int statusCode,CpsQueryServerGroupsResponse* _Nullable queryServerGroupsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsQueryServerGroupsExecutor* excutor = [[CpsQueryServerGroupsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:queryServerGroupsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsQueryServerGroupsResponse* response = [[CpsQueryServerGroupsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeInstanceMonitorInfo sync request
@param describeInstanceMonitorInfoRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeInstanceMonitorInfoResponse` the request response data model
*/
-(NSDictionary*) describeInstanceMonitorInfoSyncWithRequest:(CpsDescribeInstanceMonitorInfoRequest*) describeInstanceMonitorInfoRequest
{
CpsDescribeInstanceMonitorInfoExecutor* excutor = [[CpsDescribeInstanceMonitorInfoExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeInstanceMonitorInfoRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeInstanceMonitorInfoResponse* response = [[CpsDescribeInstanceMonitorInfoResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeInstanceMonitorInfoResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeInstanceMonitorInfoAsyncWithRequest:(CpsDescribeInstanceMonitorInfoRequest*) describeInstanceMonitorInfoRequest
                       completionHandler:(void(^)(int statusCode,CpsDescribeInstanceMonitorInfoResponse* _Nullable describeInstanceMonitorInfoResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsDescribeInstanceMonitorInfoExecutor* excutor = [[CpsDescribeInstanceMonitorInfoExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeInstanceMonitorInfoRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeInstanceMonitorInfoResponse* response = [[CpsDescribeInstanceMonitorInfoResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
createInstances sync request
@param createInstancesRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createInstancesResponse` the request response data model
*/
-(NSDictionary*) createInstancesSyncWithRequest:(CpsCreateInstancesRequest*) createInstancesRequest
{
CpsCreateInstancesExecutor* excutor = [[CpsCreateInstancesExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:createInstancesRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsCreateInstancesResponse* response = [[CpsCreateInstancesResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"createInstancesResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)createInstancesAsyncWithRequest:(CpsCreateInstancesRequest*) createInstancesRequest
                       completionHandler:(void(^)(int statusCode,CpsCreateInstancesResponse* _Nullable createInstancesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsCreateInstancesExecutor* excutor = [[CpsCreateInstancesExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:createInstancesRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsCreateInstancesResponse* response = [[CpsCreateInstancesResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
resetPassword sync request
@param resetPasswordRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `resetPasswordResponse` the request response data model
*/
-(NSDictionary*) resetPasswordSyncWithRequest:(CpsResetPasswordRequest*) resetPasswordRequest
{
CpsResetPasswordExecutor* excutor = [[CpsResetPasswordExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:resetPasswordRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsResetPasswordResponse* response = [[CpsResetPasswordResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"resetPasswordResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)resetPasswordAsyncWithRequest:(CpsResetPasswordRequest*) resetPasswordRequest
                       completionHandler:(void(^)(int statusCode,CpsResetPasswordResponse* _Nullable resetPasswordResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsResetPasswordExecutor* excutor = [[CpsResetPasswordExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:resetPasswordRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsResetPasswordResponse* response = [[CpsResetPasswordResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
associateElasticIp sync request
@param associateElasticIpRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `associateElasticIpResponse` the request response data model
*/
-(NSDictionary*) associateElasticIpSyncWithRequest:(CpsAssociateElasticIpRequest*) associateElasticIpRequest
{
CpsAssociateElasticIpExecutor* excutor = [[CpsAssociateElasticIpExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:associateElasticIpRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsAssociateElasticIpResponse* response = [[CpsAssociateElasticIpResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"associateElasticIpResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)associateElasticIpAsyncWithRequest:(CpsAssociateElasticIpRequest*) associateElasticIpRequest
                       completionHandler:(void(^)(int statusCode,CpsAssociateElasticIpResponse* _Nullable associateElasticIpResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsAssociateElasticIpExecutor* excutor = [[CpsAssociateElasticIpExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:associateElasticIpRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsAssociateElasticIpResponse* response = [[CpsAssociateElasticIpResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
stopInstance sync request
@param stopInstanceRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `stopInstanceResponse` the request response data model
*/
-(NSDictionary*) stopInstanceSyncWithRequest:(CpsStopInstanceRequest*) stopInstanceRequest
{
CpsStopInstanceExecutor* excutor = [[CpsStopInstanceExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:stopInstanceRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsStopInstanceResponse* response = [[CpsStopInstanceResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"stopInstanceResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)stopInstanceAsyncWithRequest:(CpsStopInstanceRequest*) stopInstanceRequest
                       completionHandler:(void(^)(int statusCode,CpsStopInstanceResponse* _Nullable stopInstanceResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsStopInstanceExecutor* excutor = [[CpsStopInstanceExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:stopInstanceRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsStopInstanceResponse* response = [[CpsStopInstanceResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeVpc sync request
@param describeVpcRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeVpcResponse` the request response data model
*/
-(NSDictionary*) describeVpcSyncWithRequest:(CpsDescribeVpcRequest*) describeVpcRequest
{
CpsDescribeVpcExecutor* excutor = [[CpsDescribeVpcExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeVpcRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeVpcResponse* response = [[CpsDescribeVpcResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeVpcResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeVpcAsyncWithRequest:(CpsDescribeVpcRequest*) describeVpcRequest
                       completionHandler:(void(^)(int statusCode,CpsDescribeVpcResponse* _Nullable describeVpcResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsDescribeVpcExecutor* excutor = [[CpsDescribeVpcExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeVpcRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeVpcResponse* response = [[CpsDescribeVpcResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeSubnets sync request
@param describeSubnetsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeSubnetsResponse` the request response data model
*/
-(NSDictionary*) describeSubnetsSyncWithRequest:(CpsDescribeSubnetsRequest*) describeSubnetsRequest
{
CpsDescribeSubnetsExecutor* excutor = [[CpsDescribeSubnetsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeSubnetsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeSubnetsResponse* response = [[CpsDescribeSubnetsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeSubnetsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeSubnetsAsyncWithRequest:(CpsDescribeSubnetsRequest*) describeSubnetsRequest
                       completionHandler:(void(^)(int statusCode,CpsDescribeSubnetsResponse* _Nullable describeSubnetsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsDescribeSubnetsExecutor* excutor = [[CpsDescribeSubnetsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeSubnetsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeSubnetsResponse* response = [[CpsDescribeSubnetsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
queryRouteTable sync request
@param queryRouteTableRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryRouteTableResponse` the request response data model
*/
-(NSDictionary*) queryRouteTableSyncWithRequest:(CpsQueryRouteTableRequest*) queryRouteTableRequest
{
CpsQueryRouteTableExecutor* excutor = [[CpsQueryRouteTableExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:queryRouteTableRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsQueryRouteTableResponse* response = [[CpsQueryRouteTableResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"queryRouteTableResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)queryRouteTableAsyncWithRequest:(CpsQueryRouteTableRequest*) queryRouteTableRequest
                       completionHandler:(void(^)(int statusCode,CpsQueryRouteTableResponse* _Nullable queryRouteTableResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsQueryRouteTableExecutor* excutor = [[CpsQueryRouteTableExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:queryRouteTableRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsQueryRouteTableResponse* response = [[CpsQueryRouteTableResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
deleteListener sync request
@param deleteListenerRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteListenerResponse` the request response data model
*/
-(NSDictionary*) deleteListenerSyncWithRequest:(CpsDeleteListenerRequest*) deleteListenerRequest
{
CpsDeleteListenerExecutor* excutor = [[CpsDeleteListenerExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:deleteListenerRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDeleteListenerResponse* response = [[CpsDeleteListenerResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"deleteListenerResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)deleteListenerAsyncWithRequest:(CpsDeleteListenerRequest*) deleteListenerRequest
                       completionHandler:(void(^)(int statusCode,CpsDeleteListenerResponse* _Nullable deleteListenerResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsDeleteListenerExecutor* excutor = [[CpsDeleteListenerExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:deleteListenerRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDeleteListenerResponse* response = [[CpsDeleteListenerResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
applyElasticIps sync request
@param applyElasticIpsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `applyElasticIpsResponse` the request response data model
*/
-(NSDictionary*) applyElasticIpsSyncWithRequest:(CpsApplyElasticIpsRequest*) applyElasticIpsRequest
{
CpsApplyElasticIpsExecutor* excutor = [[CpsApplyElasticIpsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:applyElasticIpsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsApplyElasticIpsResponse* response = [[CpsApplyElasticIpsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"applyElasticIpsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)applyElasticIpsAsyncWithRequest:(CpsApplyElasticIpsRequest*) applyElasticIpsRequest
                       completionHandler:(void(^)(int statusCode,CpsApplyElasticIpsResponse* _Nullable applyElasticIpsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsApplyElasticIpsExecutor* excutor = [[CpsApplyElasticIpsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:applyElasticIpsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsApplyElasticIpsResponse* response = [[CpsApplyElasticIpsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
createKeypairs sync request
@param createKeypairsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createKeypairsResponse` the request response data model
*/
-(NSDictionary*) createKeypairsSyncWithRequest:(CpsCreateKeypairsRequest*) createKeypairsRequest
{
CpsCreateKeypairsExecutor* excutor = [[CpsCreateKeypairsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:createKeypairsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsCreateKeypairsResponse* response = [[CpsCreateKeypairsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"createKeypairsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)createKeypairsAsyncWithRequest:(CpsCreateKeypairsRequest*) createKeypairsRequest
                       completionHandler:(void(^)(int statusCode,CpsCreateKeypairsResponse* _Nullable createKeypairsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsCreateKeypairsExecutor* excutor = [[CpsCreateKeypairsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:createKeypairsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsCreateKeypairsResponse* response = [[CpsCreateKeypairsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
removeServer sync request
@param removeServerRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `removeServerResponse` the request response data model
*/
-(NSDictionary*) removeServerSyncWithRequest:(CpsRemoveServerRequest*) removeServerRequest
{
CpsRemoveServerExecutor* excutor = [[CpsRemoveServerExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:removeServerRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsRemoveServerResponse* response = [[CpsRemoveServerResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"removeServerResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)removeServerAsyncWithRequest:(CpsRemoveServerRequest*) removeServerRequest
                       completionHandler:(void(^)(int statusCode,CpsRemoveServerResponse* _Nullable removeServerResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsRemoveServerExecutor* excutor = [[CpsRemoveServerExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:removeServerRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsRemoveServerResponse* response = [[CpsRemoveServerResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
importKeypairs sync request
@param importKeypairsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `importKeypairsResponse` the request response data model
*/
-(NSDictionary*) importKeypairsSyncWithRequest:(CpsImportKeypairsRequest*) importKeypairsRequest
{
CpsImportKeypairsExecutor* excutor = [[CpsImportKeypairsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:importKeypairsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsImportKeypairsResponse* response = [[CpsImportKeypairsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"importKeypairsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)importKeypairsAsyncWithRequest:(CpsImportKeypairsRequest*) importKeypairsRequest
                       completionHandler:(void(^)(int statusCode,CpsImportKeypairsResponse* _Nullable importKeypairsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsImportKeypairsExecutor* excutor = [[CpsImportKeypairsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:importKeypairsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsImportKeypairsResponse* response = [[CpsImportKeypairsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
createServerGroup sync request
@param createServerGroupRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createServerGroupResponse` the request response data model
*/
-(NSDictionary*) createServerGroupSyncWithRequest:(CpsCreateServerGroupRequest*) createServerGroupRequest
{
CpsCreateServerGroupExecutor* excutor = [[CpsCreateServerGroupExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:createServerGroupRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsCreateServerGroupResponse* response = [[CpsCreateServerGroupResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"createServerGroupResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)createServerGroupAsyncWithRequest:(CpsCreateServerGroupRequest*) createServerGroupRequest
                       completionHandler:(void(^)(int statusCode,CpsCreateServerGroupResponse* _Nullable createServerGroupResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsCreateServerGroupExecutor* excutor = [[CpsCreateServerGroupExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:createServerGroupRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsCreateServerGroupResponse* response = [[CpsCreateServerGroupResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
startListener sync request
@param startListenerRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `startListenerResponse` the request response data model
*/
-(NSDictionary*) startListenerSyncWithRequest:(CpsStartListenerRequest*) startListenerRequest
{
CpsStartListenerExecutor* excutor = [[CpsStartListenerExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:startListenerRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsStartListenerResponse* response = [[CpsStartListenerResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"startListenerResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)startListenerAsyncWithRequest:(CpsStartListenerRequest*) startListenerRequest
                       completionHandler:(void(^)(int statusCode,CpsStartListenerResponse* _Nullable startListenerResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsStartListenerExecutor* excutor = [[CpsStartListenerExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:startListenerRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsStartListenerResponse* response = [[CpsStartListenerResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
queryCPSLBRegions sync request
@param queryCPSLBRegionsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryCPSLBRegionsResponse` the request response data model
*/
-(NSDictionary*) queryCPSLBRegionsSyncWithRequest:(CpsQueryCPSLBRegionsRequest*) queryCPSLBRegionsRequest
{
CpsQueryCPSLBRegionsExecutor* excutor = [[CpsQueryCPSLBRegionsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:queryCPSLBRegionsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsQueryCPSLBRegionsResponse* response = [[CpsQueryCPSLBRegionsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"queryCPSLBRegionsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)queryCPSLBRegionsAsyncWithRequest:(CpsQueryCPSLBRegionsRequest*) queryCPSLBRegionsRequest
                       completionHandler:(void(^)(int statusCode,CpsQueryCPSLBRegionsResponse* _Nullable queryCPSLBRegionsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsQueryCPSLBRegionsExecutor* excutor = [[CpsQueryCPSLBRegionsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:queryCPSLBRegionsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsQueryCPSLBRegionsResponse* response = [[CpsQueryCPSLBRegionsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
queryServerGroup sync request
@param queryServerGroupRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryServerGroupResponse` the request response data model
*/
-(NSDictionary*) queryServerGroupSyncWithRequest:(CpsQueryServerGroupRequest*) queryServerGroupRequest
{
CpsQueryServerGroupExecutor* excutor = [[CpsQueryServerGroupExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:queryServerGroupRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsQueryServerGroupResponse* response = [[CpsQueryServerGroupResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"queryServerGroupResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)queryServerGroupAsyncWithRequest:(CpsQueryServerGroupRequest*) queryServerGroupRequest
                       completionHandler:(void(^)(int statusCode,CpsQueryServerGroupResponse* _Nullable queryServerGroupResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsQueryServerGroupExecutor* excutor = [[CpsQueryServerGroupExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:queryServerGroupRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsQueryServerGroupResponse* response = [[CpsQueryServerGroupResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
startInstance sync request
@param startInstanceRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `startInstanceResponse` the request response data model
*/
-(NSDictionary*) startInstanceSyncWithRequest:(CpsStartInstanceRequest*) startInstanceRequest
{
CpsStartInstanceExecutor* excutor = [[CpsStartInstanceExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:startInstanceRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsStartInstanceResponse* response = [[CpsStartInstanceResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"startInstanceResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)startInstanceAsyncWithRequest:(CpsStartInstanceRequest*) startInstanceRequest
                       completionHandler:(void(^)(int statusCode,CpsStartInstanceResponse* _Nullable startInstanceResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsStartInstanceExecutor* excutor = [[CpsStartInstanceExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:startInstanceRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsStartInstanceResponse* response = [[CpsStartInstanceResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
createSubnet sync request
@param createSubnetRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createSubnetResponse` the request response data model
*/
-(NSDictionary*) createSubnetSyncWithRequest:(CpsCreateSubnetRequest*) createSubnetRequest
{
CpsCreateSubnetExecutor* excutor = [[CpsCreateSubnetExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:createSubnetRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsCreateSubnetResponse* response = [[CpsCreateSubnetResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"createSubnetResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)createSubnetAsyncWithRequest:(CpsCreateSubnetRequest*) createSubnetRequest
                       completionHandler:(void(^)(int statusCode,CpsCreateSubnetResponse* _Nullable createSubnetResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsCreateSubnetExecutor* excutor = [[CpsCreateSubnetExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:createSubnetRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsCreateSubnetResponse* response = [[CpsCreateSubnetResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
restartInstance sync request
@param restartInstanceRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `restartInstanceResponse` the request response data model
*/
-(NSDictionary*) restartInstanceSyncWithRequest:(CpsRestartInstanceRequest*) restartInstanceRequest
{
CpsRestartInstanceExecutor* excutor = [[CpsRestartInstanceExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:restartInstanceRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsRestartInstanceResponse* response = [[CpsRestartInstanceResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"restartInstanceResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)restartInstanceAsyncWithRequest:(CpsRestartInstanceRequest*) restartInstanceRequest
                       completionHandler:(void(^)(int statusCode,CpsRestartInstanceResponse* _Nullable restartInstanceResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsRestartInstanceExecutor* excutor = [[CpsRestartInstanceExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:restartInstanceRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsRestartInstanceResponse* response = [[CpsRestartInstanceResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeElasticIps sync request
@param describeElasticIpsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeElasticIpsResponse` the request response data model
*/
-(NSDictionary*) describeElasticIpsSyncWithRequest:(CpsDescribeElasticIpsRequest*) describeElasticIpsRequest
{
CpsDescribeElasticIpsExecutor* excutor = [[CpsDescribeElasticIpsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeElasticIpsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeElasticIpsResponse* response = [[CpsDescribeElasticIpsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeElasticIpsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeElasticIpsAsyncWithRequest:(CpsDescribeElasticIpsRequest*) describeElasticIpsRequest
                       completionHandler:(void(^)(int statusCode,CpsDescribeElasticIpsResponse* _Nullable describeElasticIpsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsDescribeElasticIpsExecutor* excutor = [[CpsDescribeElasticIpsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeElasticIpsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeElasticIpsResponse* response = [[CpsDescribeElasticIpsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeOS sync request
@param describeOSRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeOSResponse` the request response data model
*/
-(NSDictionary*) describeOSSyncWithRequest:(CpsDescribeOSRequest*) describeOSRequest
{
CpsDescribeOSExecutor* excutor = [[CpsDescribeOSExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeOSRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeOSResponse* response = [[CpsDescribeOSResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeOSResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeOSAsyncWithRequest:(CpsDescribeOSRequest*) describeOSRequest
                       completionHandler:(void(^)(int statusCode,CpsDescribeOSResponse* _Nullable describeOSResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsDescribeOSExecutor* excutor = [[CpsDescribeOSExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeOSRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeOSResponse* response = [[CpsDescribeOSResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
createListener sync request
@param createListenerRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createListenerResponse` the request response data model
*/
-(NSDictionary*) createListenerSyncWithRequest:(CpsCreateListenerRequest*) createListenerRequest
{
CpsCreateListenerExecutor* excutor = [[CpsCreateListenerExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:createListenerRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsCreateListenerResponse* response = [[CpsCreateListenerResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"createListenerResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)createListenerAsyncWithRequest:(CpsCreateListenerRequest*) createListenerRequest
                       completionHandler:(void(^)(int statusCode,CpsCreateListenerResponse* _Nullable createListenerResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsCreateListenerExecutor* excutor = [[CpsCreateListenerExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:createListenerRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsCreateListenerResponse* response = [[CpsCreateListenerResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
modifyElasticIpBandwidth sync request
@param modifyElasticIpBandwidthRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyElasticIpBandwidthResponse` the request response data model
*/
-(NSDictionary*) modifyElasticIpBandwidthSyncWithRequest:(CpsModifyElasticIpBandwidthRequest*) modifyElasticIpBandwidthRequest
{
CpsModifyElasticIpBandwidthExecutor* excutor = [[CpsModifyElasticIpBandwidthExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:modifyElasticIpBandwidthRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsModifyElasticIpBandwidthResponse* response = [[CpsModifyElasticIpBandwidthResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"modifyElasticIpBandwidthResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)modifyElasticIpBandwidthAsyncWithRequest:(CpsModifyElasticIpBandwidthRequest*) modifyElasticIpBandwidthRequest
                       completionHandler:(void(^)(int statusCode,CpsModifyElasticIpBandwidthResponse* _Nullable modifyElasticIpBandwidthResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsModifyElasticIpBandwidthExecutor* excutor = [[CpsModifyElasticIpBandwidthExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:modifyElasticIpBandwidthRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsModifyElasticIpBandwidthResponse* response = [[CpsModifyElasticIpBandwidthResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
queryListeners sync request
@param queryListenersRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `queryListenersResponse` the request response data model
*/
-(NSDictionary*) queryListenersSyncWithRequest:(CpsQueryListenersRequest*) queryListenersRequest
{
CpsQueryListenersExecutor* excutor = [[CpsQueryListenersExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:queryListenersRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsQueryListenersResponse* response = [[CpsQueryListenersResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"queryListenersResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)queryListenersAsyncWithRequest:(CpsQueryListenersRequest*) queryListenersRequest
                       completionHandler:(void(^)(int statusCode,CpsQueryListenersResponse* _Nullable queryListenersResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsQueryListenersExecutor* excutor = [[CpsQueryListenersExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:queryListenersRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsQueryListenersResponse* response = [[CpsQueryListenersResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
modifyServer sync request
@param modifyServerRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyServerResponse` the request response data model
*/
-(NSDictionary*) modifyServerSyncWithRequest:(CpsModifyServerRequest*) modifyServerRequest
{
CpsModifyServerExecutor* excutor = [[CpsModifyServerExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:modifyServerRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsModifyServerResponse* response = [[CpsModifyServerResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"modifyServerResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)modifyServerAsyncWithRequest:(CpsModifyServerRequest*) modifyServerRequest
                       completionHandler:(void(^)(int statusCode,CpsModifyServerResponse* _Nullable modifyServerResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsModifyServerExecutor* excutor = [[CpsModifyServerExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:modifyServerRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsModifyServerResponse* response = [[CpsModifyServerResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeInstances sync request
@param describeInstancesRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeInstancesResponse` the request response data model
*/
-(NSDictionary*) describeInstancesSyncWithRequest:(CpsDescribeInstancesRequest*) describeInstancesRequest
{
CpsDescribeInstancesExecutor* excutor = [[CpsDescribeInstancesExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeInstancesRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeInstancesResponse* response = [[CpsDescribeInstancesResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeInstancesResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeInstancesAsyncWithRequest:(CpsDescribeInstancesRequest*) describeInstancesRequest
                       completionHandler:(void(^)(int statusCode,CpsDescribeInstancesResponse* _Nullable describeInstancesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsDescribeInstancesExecutor* excutor = [[CpsDescribeInstancesExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeInstancesRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeInstancesResponse* response = [[CpsDescribeInstancesResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
createLoadBalancer sync request
@param createLoadBalancerRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createLoadBalancerResponse` the request response data model
*/
-(NSDictionary*) createLoadBalancerSyncWithRequest:(CpsCreateLoadBalancerRequest*) createLoadBalancerRequest
{
CpsCreateLoadBalancerExecutor* excutor = [[CpsCreateLoadBalancerExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:createLoadBalancerRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsCreateLoadBalancerResponse* response = [[CpsCreateLoadBalancerResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"createLoadBalancerResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)createLoadBalancerAsyncWithRequest:(CpsCreateLoadBalancerRequest*) createLoadBalancerRequest
                       completionHandler:(void(^)(int statusCode,CpsCreateLoadBalancerResponse* _Nullable createLoadBalancerResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsCreateLoadBalancerExecutor* excutor = [[CpsCreateLoadBalancerExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:createLoadBalancerRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsCreateLoadBalancerResponse* response = [[CpsCreateLoadBalancerResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
createVpc sync request
@param createVpcRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createVpcResponse` the request response data model
*/
-(NSDictionary*) createVpcSyncWithRequest:(CpsCreateVpcRequest*) createVpcRequest
{
CpsCreateVpcExecutor* excutor = [[CpsCreateVpcExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:createVpcRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsCreateVpcResponse* response = [[CpsCreateVpcResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"createVpcResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)createVpcAsyncWithRequest:(CpsCreateVpcRequest*) createVpcRequest
                       completionHandler:(void(^)(int statusCode,CpsCreateVpcResponse* _Nullable createVpcResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsCreateVpcExecutor* excutor = [[CpsCreateVpcExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:createVpcRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsCreateVpcResponse* response = [[CpsCreateVpcResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
deleteKeypairs sync request
@param deleteKeypairsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteKeypairsResponse` the request response data model
*/
-(NSDictionary*) deleteKeypairsSyncWithRequest:(CpsDeleteKeypairsRequest*) deleteKeypairsRequest
{
CpsDeleteKeypairsExecutor* excutor = [[CpsDeleteKeypairsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:deleteKeypairsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDeleteKeypairsResponse* response = [[CpsDeleteKeypairsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"deleteKeypairsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)deleteKeypairsAsyncWithRequest:(CpsDeleteKeypairsRequest*) deleteKeypairsRequest
                       completionHandler:(void(^)(int statusCode,CpsDeleteKeypairsResponse* _Nullable deleteKeypairsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsDeleteKeypairsExecutor* excutor = [[CpsDeleteKeypairsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:deleteKeypairsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDeleteKeypairsResponse* response = [[CpsDeleteKeypairsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
stopListener sync request
@param stopListenerRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `stopListenerResponse` the request response data model
*/
-(NSDictionary*) stopListenerSyncWithRequest:(CpsStopListenerRequest*) stopListenerRequest
{
CpsStopListenerExecutor* excutor = [[CpsStopListenerExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:stopListenerRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsStopListenerResponse* response = [[CpsStopListenerResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"stopListenerResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)stopListenerAsyncWithRequest:(CpsStopListenerRequest*) stopListenerRequest
                       completionHandler:(void(^)(int statusCode,CpsStopListenerResponse* _Nullable stopListenerResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsStopListenerExecutor* excutor = [[CpsStopListenerExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:stopListenerRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsStopListenerResponse* response = [[CpsStopListenerResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
deleteSubnet sync request
@param deleteSubnetRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteSubnetResponse` the request response data model
*/
-(NSDictionary*) deleteSubnetSyncWithRequest:(CpsDeleteSubnetRequest*) deleteSubnetRequest
{
CpsDeleteSubnetExecutor* excutor = [[CpsDeleteSubnetExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:deleteSubnetRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDeleteSubnetResponse* response = [[CpsDeleteSubnetResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"deleteSubnetResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)deleteSubnetAsyncWithRequest:(CpsDeleteSubnetRequest*) deleteSubnetRequest
                       completionHandler:(void(^)(int statusCode,CpsDeleteSubnetResponse* _Nullable deleteSubnetResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsDeleteSubnetExecutor* excutor = [[CpsDeleteSubnetExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:deleteSubnetRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDeleteSubnetResponse* response = [[CpsDeleteSubnetResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeBasicSubnet sync request
@param describeBasicSubnetRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeBasicSubnetResponse` the request response data model
*/
-(NSDictionary*) describeBasicSubnetSyncWithRequest:(CpsDescribeBasicSubnetRequest*) describeBasicSubnetRequest
{
CpsDescribeBasicSubnetExecutor* excutor = [[CpsDescribeBasicSubnetExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeBasicSubnetRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeBasicSubnetResponse* response = [[CpsDescribeBasicSubnetResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeBasicSubnetResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeBasicSubnetAsyncWithRequest:(CpsDescribeBasicSubnetRequest*) describeBasicSubnetRequest
                       completionHandler:(void(^)(int statusCode,CpsDescribeBasicSubnetResponse* _Nullable describeBasicSubnetResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
CpsDescribeBasicSubnetExecutor* excutor = [[CpsDescribeBasicSubnetExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeBasicSubnetRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    CpsDescribeBasicSubnetResponse* response = [[CpsDescribeBasicSubnetResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}


 /**
 cps common sync request
 @param  jdcloudDataRequest request param
 @return key `statusCode` http request status code type is int
             `dataResult` the http request response data  type is NSData
             `requestError` the request error type is NSError
 */
 -(NSDictionary*) cpsCommonSyncWithRequest:(JDCloudDataRequest*) jdcloudDataRequest
                                                   url:(NSString*) url
                                                method:(NSString*) method{
    CommonExecutor* excutor = [[CommonExecutor alloc] initWithJDCloudClient:self url:url method:method];
    NSDictionary* responseResult = [excutor executeDataSync:jdcloudDataRequest];
    return responseResult;
}

-(void)cpsCommonAsyncWithRequest:(JDCloudDataRequest*) jdcloudDataRequest
                                         url:(NSString*) url
                                      method:(NSString*) method
                           completionHandler:(void(^)(int statusCode, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
     CommonExecutor* excutor = [[CommonExecutor alloc] initWithJDCloudClient:self url:url method:method];
    
    [excutor executeDataAsync:jdcloudDataRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        completionHandler(statusCode,responseData,error);
    }];
} 

@end
